﻿using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace VRB_0._1
{
    class OleMap : Map
    {
        public override void Initialize(ContentManager Content, Viewport Viewport)
        {
            //denne linja må være med, men kun som copy/paste.
            base.Initialize(Content, Viewport);

            //Her defineres startposisjonen til spilleren
            avatarStartPosition = new Vector2(Viewport.TitleSafeArea.X,
                Viewport.TitleSafeArea.Y + Viewport.TitleSafeArea.Height / 2);

            //Her lastes inn all tekstur som skal brukes
            Texture2D packagingBoxTexture = Content.Load<Texture2D>("cardboardbox hires");

            //Her instansieres og initialiseres alle objekter (Bare copy/paste dette, og bytt ut Klassenavn, variabelnavn, tekstur og posisjon.
            PackagingBox pb = new PackagingBox();
            pb.Initialize(Viewport, packagingBoxTexture, new Vector2(200.0f, 250.0f));
            objects.Add(pb);
            PackagingBox pb1 = new PackagingBox();
            pb1.Initialize(Viewport, packagingBoxTexture, new Vector2(30.0f, 300.0f));
            objects.Add(pb1);
            PackagingBox pb2 = new PackagingBox();
            pb2.Initialize(Viewport, packagingBoxTexture, new Vector2(400.0f, 450.0f));
            objects.Add(pb2);
            PackagingBox pb3 = new PackagingBox();
            pb3.Initialize(Viewport, packagingBoxTexture, new Vector2(30.0f, 200.0f));
            objects.Add(pb3);
            PackagingBox pb4 = new PackagingBox();
            pb4.Initialize(Viewport, packagingBoxTexture, new Vector2(540.0f, 10.0f));
            objects.Add(pb4);
            base.InitializeAfterChild();
        }
        public override void Update(GameTime gameTime)
        {
            //Ikke tenk på denne, med mindre det brukes heiser og slikt.



            base.Update(gameTime);
        }
        public override void UpdateMap(float movespeed, bool forward)
        {
            //Ikke tenk på denne, med mindre det brukes heiser og slikt.



            base.UpdateMap(movespeed, forward);
        }

        public override Game1.ENDING IsEnd(Avatar avatar, Viewport Viewport)
        {
            //Her testes det på om spilleren berører mål eller ikke. Bytt ut posisjoner i rect2 med deres målområde.
            //Foreløpig kan man kun dø om man faller nedenfor skjermen. Dette skal jeg endre etter hvert.
            Rectangle rect1 = new Rectangle((int)avatar.Position.X, (int)avatar.Position.Y, avatar.Width, avatar.Height);
            Rectangle rect2 = new Rectangle(760, 115, 50, 10);
            if (rect1.Intersects(rect2))
                return Game1.ENDING.WIN;
            else if (avatar.Position.Y >= Viewport.Height - avatar.Height)
                return Game1.ENDING.LOSE;
            else
                return Game1.ENDING.NOTYET;
        }
        public override void Restart(Avatar avatar)
        {
            //Ikke tenk på denne
            base.Restart(avatar);
        }
        public override void Draw(SpriteBatch spriteBatch)
        {
            //Ikke tenk på denne
            base.Draw(spriteBatch);
        }
    }
}
